<?
require_once('class/conexion/conexion.php');


class DBEnlace
{

	public $mConexion = null;

	public function __construct() 
	{
		$this->mConexion = new Conexion($this);
	}
	
	public function listarEnlaces($tiempo)
	{
		$sql ="SELECT * FROM ENLACE WHERE TIEMPO = ".mysql_real_escape_string($tiempo)."";
		return $this->mConexion->sql($sql);
	}
		
	public function listarRelacionesPorOrigen($nodoOrigen, $tiempo)
	{
		$sql =	"SELECT * 
			 FROM ENLACE, NODO 
			 WHERE NODO.ID = ENLACE.ID_DESTINO AND NODO.TIEMPO = ENLACE.TIEMPO
			 AND ID_ORIGEN = ".mysql_real_escape_string($nodoOrigen)." AND ENLACE.TIEMPO = ".mysql_real_escape_string($tiempo)." ";
		return $this->mConexion->sql($sql);
	}
	
	public function listarRelacionesPorDestino($nodoDestino, $tiempo)
	{
		$sql =	"SELECT * 
			 FROM ENLACE, NODO 
			 WHERE NODO.ID = ENLACE.ID_DESTINO
			 AND ID_DESTINO = ".mysql_real_escape_string($nodoDestino)." AND ENLACE.TIEMPO = ".mysql_real_escape_string($tiempo)." ";
				
		return $this->mConexion->sql($sql);
		
	}
	
	
	public function listarNodosDesconocidos($idNodo, $tiempo, $red)
	{
		$sql =	"SELECT ID, NOMBRE
				FROM NODO
				WHERE NODO.ID NOT IN (
					SELECT ID_DESTINO
					FROM ENLACE
					WHERE ID_ORIGEN =".mysql_real_escape_string($idNodo)."
				)
				AND NODO.ID <> ".mysql_real_escape_string($idNodo)."
				AND NODO.ID_RED = ".mysql_real_escape_string($red)."
				AND NODO.TIEMPO = ".mysql_real_escape_string($tiempo)."
				AND NODO.BORRADO = 0";
		return $this->mConexion->sql($sql);
		
	}
	
	public function insertarEnlace($idOrigen, $idDestino, $tiempo)
	{
		$sql =	"INSERT INTO ENLACE (ID_ORIGEN, ID_DESTINO, TIEMPO) VALUES ("
				.mysql_real_escape_string($idOrigen).", "
				.mysql_real_escape_string($idDestino).", "
				.mysql_real_escape_string($tiempo).")";
		return $this->mConexion->sql($sql);		
	}
	
	public function buscarEnlace($idOrigen, $idDestino, $tiempo)
	{
		$sql =	"SELECT ID FROM ENLACE WHERE ID_ORIGEN = "
				.mysql_real_escape_string($idOrigen)." AND ID_DESTINO = "
				.mysql_real_escape_string($idDestino)." AND TIEMPO = "
				.mysql_real_escape_string($tiempo)."";
		return $this->mConexion->sql($sql);		
	}
	
	public function eliminarEnlace($id, $tiempo)
	{
		$sql =	"DELETE FROM ENLACE WHERE ID = ".mysql_real_escape_string($id).
				" AND TIEMPO = ".mysql_real_escape_string($tiempo)."";

		return $this->mConexion->sql($sql);		
	}
	
	public function obtenerAnnadidos($t1, $t2, $red)
	{
		$sql ="SELECT ENLACE.ID_ORIGEN AS ID_ORIGEN, ENLACE.ID_DESTINO AS ID_DESTINO 
				FROM ENLACE, NODO 
				WHERE NODO.ID = ENLACE.ID_ORIGEN 
					AND NODO.ID_RED = ".$red." 
					AND ENLACE.TIEMPO = ".$t2." 
					AND NODO.TIEMPO = ".$t2."
					AND ENLACE.ID NOT IN 
						( SELECT ENLACE.ID 
						FROM ENLACE, NODO 
						WHERE NODO.ID = ENLACE.ID_ORIGEN 
							AND NODO.ID_RED = ".$red." 
							AND NODO.TIEMPO = ".$t1."
							AND ENLACE.TIEMPO = ".$t1.")";
		return $this->mConexion->sql($sql);
	}
	
	public function obtenerModificados($t1, $t2, $red)
	{
		$sql ="SELECT ENLACE.ID_ORIGEN AS ID_ORIGEN, ENLACE.ID_DESTINO AS ID_DESTINO, V1.VALOR AS VALOR_OLD, 
					V2.VALOR AS VALOR_NEW, ATRIBUTO.NOMBRE AS NOMBRE_ATRIBUTO  
				FROM VALOR_ATRIBUTO AS V1, VALOR_ATRIBUTO AS V2, ENLACE, ATRIBUTO, NODO 
				WHERE
					V1.TIPO_ORIGEN = 'ENLACE'
					AND V2.TIPO_ORIGEN = 'ENLACE'
					AND V1.ID_ORIGEN = V2.ID_ORIGEN
					AND V1.ID_ATRIBUTO = V2.ID_ATRIBUTO
					AND V1.VALOR <> V2.VALOR
					AND V1.TIEMPO = ".$t1."
					AND V2.TIEMPO = ".$t2."
					AND ENLACE.ID = V1.ID_ORIGEN
					AND ENLACE.ID_ORIGEN = NODO.ID
					AND ENLACE.TIEMPO = ".$t1."
					AND ATRIBUTO.ID = V1.ID_ATRIBUTO
					AND NODO.ID_RED = ".$red."
					AND NODO.TIEMPO = ".$t1;
		return $this->mConexion->sql($sql);
	}
	
	public function obtenerEliminados($t1, $t2, $red) 
	{
		$sql = "SELECT ENLACE.ID_ORIGEN AS ID_ORIGEN, ENLACE.ID_DESTINO AS ID_DESTINO 
				FROM ENLACE, NODO 
				WHERE NODO.ID = ENLACE.ID_ORIGEN 
					AND NODO.ID_RED = ".$red." 
					AND ENLACE.TIEMPO = ".$t1." 
					AND NODO.TIEMPO = ".$t1."
					AND ENLACE.ID NOT IN 
						( SELECT ENLACE.ID 
						FROM ENLACE, NODO 
						WHERE NODO.ID = ENLACE.ID_ORIGEN 
							AND NODO.ID_RED = ".$red." 
							AND NODO.TIEMPO = ".$t2."
							AND ENLACE.TIEMPO = ".$t2.")";
		return $this->mConexion->sql($sql);
	}
	
}
?>